home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 10
/
FM Towns Free Software Collection 10.iso
/
ms_dos
/
tool
/
ct
/
ct.doc
next >
Wrap
Text File
|
1995-02-26
|
14KB
|
322 lines
-------------
CTsの使い方
-------------
1.CTsがすること。
本プログラムは、NIFTYのログを参照して、そのコメントツリーを
表示する物です。
1つの会議室で5040個までの発言についてツリーを作ることが出来
ます。それ以上の発言は扱えませんので、生ログファイルを削除したり
(危険!)、検索するディレクトリを少なくするようにして下さい。
本来は、フォーラムの会議室の発言とPATIOの発言だけを処理すれ
ば良いのですが、追加機能として以下の処理も行えるようにしました。
・HPの発言
・メール
・データライブラリー(以下DLと略す)のリスト
・今週のお知らせ
・クリッピングサービス
・NIFTYの利用料金情報
ただし、これらの発言等は、発言日時、発言番号の順に並んだ物として表
示されます。
また、DLは、発言番号の位置にDL番号を表示し、DL番号の順に表示
し、リストの参照数の和が異なれば異なる物として表示します。(参照数の
和の多い方が後に表示されます。)
また、課金情報は、発言番号の位置に、1番目の月を表示し、3ヵ月のア
クセス回数の和が異なれば異なる物として表示します。(アクセス回数の和
の多い方が後に表示されます。)
処理の途中で「ESC」キーを押すと、処理を中断します。中断した時、内
部で使用しているTMPファイル(後述)は削除しません。
今回、「ファイル・インデックス」の考え方を取り入れました。その為、
かなりたくさんのインデックス・ファイルをディスク上に作ることになりま
した。
処理内容が増えたため、以前の ctt.exe を分割せざるをえなくなりました。
以前の ctt.exe を分割して ctm.exe, ctt.exe, ctl.exe ができます。
プログラムを分割した為、それぞれのプログラムをロードするのに時間が
かかるようになってしまいました。
以前からの互換性を守るため、全ての処理は ctd.com を介して行うように
して下さい。
ctd.com はコマンドラインをそのまま ctm.exe ctt.exe ctl.exe に渡します。
(1) 扱うファイル
CTsが理解できるファイルは、次のファイルです。
┌───────────────────────────┐
│・FAPXを使ってオートでダウンした「生ログファイル」│
│・CATLOGを使って「整理したファイル」 │
└───────────────────────────┘
これ以外のファイルは、フォーラム名や、HP・PATIOの設置者IDが
「UNKNOWN」として処理されたり、PATIOがフォーラムとして処理される
おそれがあります。
また、全く発言を見つけることができないかも知れません。
(2) 無視するファイル
CTsが無視するファイルは、明らかにログファイルではないと思われる拡
張子のファイルです。
コマンドライン上で、
ctm
と実行していただくと、無視するファイルの拡張子が表示されます。
(3) 作成するファイル
CTsを実行すると「出力ディレクトリ(OutDir)」(後述)に次のファイル
を作成します。ファイルの内容については後述します。
・comtree.tmp コメントツリーの諸データが書き込まれます。
・comtree0.tmp コメントツリーの標題が書き込まれます。
・comtxt.tmp 発言の本体が書き込まれます。
・会議室.tmp フォーラムの会議室の一覧が書き込まれます。
・DL.tmp DLの一覧が書き込まれます。
(4) MS-DOSの環境変数の参照
CTsは、次の2つの環境変数を参照しています。
ctusr
tmp
「ctusr」は、CTsに対してオプションスイッチを設定する働きがあります。
スイッチの意味はコマンドラインで指定するスイッチと全く同じです。
ただし、スイッチの優先順序があります。
優先順位が一番高いのはコマンドラインからの指定です。ここで、指定す
ると環境変数で指定していても無視されます。
優先順位が次に高いのは、環境変数「ctusr」での指定です。これは、CTs
のデフォルトの値を無視します。
優先順位が最も低いのは、CTsのデフォルトの値です。
「tmp」は、CTsが内部で作成するTMPファイルを書き出すドライブ:デ
ィレクトリを指定します。この設定がない場合はCTsを起動した時のカレント
ディレクトリにTMPファイルが書き出されます。
「tmp」をRAMディスクに設定しておくと処理が高速になります。
2.CTsの実行の仕方
コマンドライン上で、次のように実行して下さい。
ctd [-option] [-o OutDir名] InputDir名 [InputDir名] [InputDir名]...
または、
ctd [-option] [-o OutDir名] File名 [File名] [File名]...
または、
ctd [-option] @Def-File名
オプションには必ず「-」を使って下さい。
今回採用した「ファイルインデックス」の考え方により、「-s<DirName>」オ
プションの指定が大事になります。これをコマンドラインの最初の方で指定して
下さい。なお、コマンドラインで毎回指定するのは「面倒だ」と思われる方はM
S-DOSの環境変数「ctusr」に次のようにして「-s<DirName>」を設定して下
さい。
>set ctusr=ADsi:\system
これは、「i:\system」をファイルインデックスを置くディレクトリとすると
いうものです。
なお、「-s<DirName>」の指定は、絶対パス指定で行って下さい。また、ファイ
ルの性格上、RAMディスクには設定しないです下さい。
「-」の後ろには複数のオプションを指定することができます。
例: -TDo
また、別々に指定することもできます。
例: -T -D -o
また、矛盾する指定を同時に指定した場合は、後で(右側で)指定した方が
有効になります。
例: -Todt
この場合「t」が有効になります。
「-」の無いものは入力するファイル名かディレクトリ名として判断します。
ということは、逆に、「-」から始まるファイルやディレクトリは入力として
扱えないということです。適当な名前に変更(rename)してCTsを起動して下
さい。
「-o OutDir名」の指定が無い場合は、「comtree.tmp」「comtree0.tmp」
「会議室.tmp」「DL.tmp」ファイルはカレント・ディレクトリに書き出されま
す。
オプションについては ctd.com ctm.exe ctt.exe ctl.exe を引数指定無しで
起動して下さい。簡単な説明が表示されます。
3.「入力ディレクトリ(InputDir)」「出力ディレクトリ(OutDir)」について
(1) 入力ディレクトリ(InputDir)
ログ・ファイルがどのドライブ:ディレクトリにあるのか指定します。
指定の仕方はMS-DOSの方法です。
カレント・ディレクトリのファイルを検索するのであれば「.」を指定します。
この部分にファイル名を指定すると、指定したファイルだけを読み込んで発
言を探索します。
MS-DOSのワイルド・カードが使用できます。
設定を省略することはできません。
ディレクトリ名の最後に「\」を付ける必要はありません。
(2) 出力ディレクトリ(OutDir)
CTsが作るファイルをどのドライブ:ディレクトリに書き出すかを指定しま
す。
指定の仕方はMS-DOSの方法です。
この指定は省略することができます。省略されると、起動時のカレント・デ
ィレクトリにファイルを書き出します。
ディレクトリ名の最後に「\」を付ける必要はありません。
この部分にRAMディスクを指定すると、少し高速になります。
4.CTsが作るファイルについて。
(1) comtree.tmp コメントツリーの諸データが書き込まれます。
このデータは、3行が1セットになって、3行で1つの発言についてのデー
タを表します。
そして、「comtree0.tmp」に書き出される標題だけのデータや、「comtxt.t
mp」に書き出される発言の本体と、同じ順番で書き出されています。
その内容は次のようになっています。
1行目はフォーラム名の行(NIFTYの形式)が入ります。
以後フォーラム名が変わる場合は、「フォーラム名変更」という文字列
が入ります。会議室番号は入りません。
以後会議室番号が変わる場合は、「会議室名変更」という文字列が入り
ます。会議室番号は入りません。
2行目は、発言に関するデータが入ります。その意味は下の通りです。
"%5ld %5ld %8ld %8ld %5d %5d %10ld\n"
| | | | | | ↓
| | | | | ↓ 発言日時(10文字の数字)
| | | | ↓ 発言の終了行(5文字の数字)
| | | ↓ 発言の開始行(5文字の数字)
| | ↓ 発言の終了バイト数(8文字の数字)
| ↓ 発言の開始バイト数(8文字の数字)
↓ コメント元番号(5文字の数字)
発言番号(5文字の数字)
「フォーラム名変更」「会議室名変更」の場合は、それぞれ該当の名前
が入ります。
3行目は発言のあったファイル名がパス名付きで書き出されます。
「フォーラム名変更」「会議室名変更」の場合は、改行だけです。
(2) comtree0.tmp コメントツリーの標題が書き込まれます。
内容は、画面上に表示される文字列をそのままファイルに書き込んだ物です。
発言のツリーだけを表示すると、どのフォーラムのどの会議室の発言か分か
りにくいので、それらがわかるデータ(標題)を入れてあります。
(3) comtxt.tmp 発言の本体が書き込まれます。
(4) 会議室.tmp フォーラムの会議室の一覧が書き込まれます。
フォーラムの会議室の一覧が書き込まれます。
形式は、次のようになっています。
┌──────────────────────────┐
│FORUM:xxxxxx │
│<FMフォーラム????館) > xxxxxx │
│番号 発言 (未読) 最新 会議室名 │
│ 1 1 ( 1) 08/21 FAPXの部屋 │
└──────────────────────────┘
フォーラムとフォーラムの間には1行の空行があります。
また、会議室の一覧に当たる文字列がなかった場合、このファイルは作成さ
れません。
(5) DL.tmp DLの一覧が書き込まれます。
DLの一覧が書き込まれます。
形式は、次のようになっています。
┌──────────────────────────┐
│LIB:xxxxxx │
│<FMフォーラム????館) > xxxxxx │
│番号 総数 登録済 最新 ライブラリ名 │
│ 1 1 ( 1) 08/21 FAPX関連 │
└──────────────────────────┘
フォーラムとフォーラムの間には1行の空行があります。
また、DLの一覧に当たる文字列がなかった場合、このファイルは作成さ
れません。
(6) SYSTEMディレクトリについて
今回の修正で、ファイルインデックスという考え方を採用しました。これは、
1つのログファイルに対して1個の<発言情報ファイル>を作る、という考え方
です。
ctm.exe 実行時、「-s<DirName>」で指定したディレクトリにファイル名はその
ままで、拡張子を000~999という数字にしたファイルを作ります。
そして ctt.exe はそのディレクトリのファイルを参照してコメントツリーを
作ります。
また、オプションの指定により、「既読印」を comtree0.tmp に付け加えます
が、ctl.exe はそのデータの記録に 「-s<DirName>」を参照しています。
上記のインデックスファイルを一元管理するのが「ct_index.tmp」です。この
ファイルには各インデックスファイルがどのログファイルのインデックスであるの
かを記録しています。
「-s<DirName>」オプションによりこのディレクトリが指定されていない場合は、
インデックスは各ログファイルと同じディレクトリに置かれます。
ファイルはバイナリーファイルになっています。
5.実行例
(1) 実行例1
「f:\log」にあるファイルを検索してツリーを作る。
できたファイルは「f:\tmp」に書き出す。
「comtxt.tmp」を作る。
ctt -o f:\tmp f:\log
(2) 実行例2
「f:\log」にあるファイルを検索して、ツリーを作る。
できたファイルはカレント・ディレクトリに書き出す。
ただし、「comtxt.tmp」ファイルは作らない。
ctt -T f:\log
例1と異なる所はオプション指定を付加していることです。
(3) 実行例3
「f:\log\ffmhob 」にあるファイルを検索して、ツリーを作る。
できたファイルは「f:\tmp」に書き出す。
「comtxt.tmp」ファイルは作らない。
ctt -o f:\tmp -DT f:\log\ffmhob
(4) 実行例4 → できるだけ高速に処理を行う。
MS-DOSの環境変数「tmp」にRAMディスクを指定する。
例えば、「G:」ドライブがRAMディスクだったとすると、システム
起動時に最初に実行する「autoexec.bat」というバッチファイルに
set tmp=g:
という1行を追加しておくと設定できます。
「-D」オプションを指定する。
「-T」オプションを指定する。
使い方はだいたい分かっていただいたでしょうか?
6.問題点
(1) とにかく、処理に時間がかかるということです。
CATLOGで整理したファイルに対して処理を行うと、かなり待たされ
ます。
(2) かなりたくさんのTMPファイルを作ります。
(3) 実行時、メモリーのヒープ領域を大量に確保します。充分なメモリーが無
い場合は処理できる発言数が少なくなるばかりか、「発言の数が多くて処理
できません」というエラーメッセージを出して中断することもあります。
7.作成協力者
以下の方々にご協力いただいて、本プログラムは作られました。
ここに紹介して感謝の念を表したいと思います。
PEE01244 Yama-chan さん
PFG02442 <Nakatani> さん
QFH02666 好実 さん
GFF00430 えんでん さん
VFA03257 フェイス さん
PED00201 JINX さん
HCD01017 猫飛 さん
HAD01045 SAINT さん
PGA01332 -なるチャン-☆ さん
HAC01216 doubt さん
GDH03105 だいへいくん さん
GBH00541 DORAGON さん
HFB02053 RENCHAN さん
JAG00217 てげてげ さん
HGE00530 し~なくん さん
HGG03505 LRA. さん
HAH00313 Omohyoideus さん
HGC02275 With さん
PEA02634 雅び さん
8.著作権
本プログラムは飛雪(ひせつ)さんが開発されたCTsをベースにして、
改版を重ねたものです。
現在、飛雪さんは Niftyserve を脱会されており、CTsのメンテナン
スは、私Withがおこなっていますので、要望やバグ報告などは私の方
へご連絡ください。
また、CTsの使用、配付は自由に行っていただいてかまいませんが、
トラブルを避けるために、事前に連絡をお願いします。
9.何かありましたら。
NIFTYのフォーラムFRAVの「おきらく・もっぷた~む」の会議室
に発言されるか、私あてメールを下さい。
) ------- ) ) . _)_ )_ With )
岩間 和彦 ( HGC02275 (/(/ ( (_ ( ( --- (